package showgo.modell.stamm;

import java.text.DateFormat;
import java.util.GregorianCalendar;

public class Person {
    private String name;

    private String gebDatum;

    private String geschlecht;

    private int wortzahlMerken;

    public Person(String name, String gebDatum, String geschlecht,
	    int wortzahlMerken) {
	super();
	this.name = name;
	this.gebDatum = gebDatum;
	this.geschlecht = geschlecht;
	this.wortzahlMerken = wortzahlMerken;
    }

    public String getName() {
	return name;
    }

    public void setName(String name) {
	this.name = name;
    }

    public String getGebDatum() {
	return gebDatum;
    }

    public void setGebDatum(String gebDatum) {
	this.gebDatum = gebDatum;
    }

    public String getGeschlecht() {
	return geschlecht;
    }

    public void setGeschlecht(String geschlecht) {
	this.geschlecht = geschlecht;
    }

    public int getWortzahlMerken() {
	return wortzahlMerken;
    }

    public void setWortzahlMerken(int wortzahlMerken) {
	this.wortzahlMerken = wortzahlMerken;
    }

    public int berechneAlter() {
	// berechnet Alter mit einer Genauigkeit von einem Jahr

	int gebYear = Integer.valueOf(this.gebDatum.substring(6,
		this.gebDatum.length()));

	GregorianCalendar now = new GregorianCalendar();
	DateFormat df = DateFormat.getInstance();
	df = DateFormat.getDateInstance(DateFormat.MEDIUM);
	String date = df.format(now.getTime());
	int nowYear = Integer.valueOf(date.substring(6, date.length()));

	if (gebYear == nowYear) {
	    return 0;
	} else if (gebYear > nowYear) {
	    return 0;
	}

	return nowYear - gebYear;
    }

    public Person tiefeKopie() {
	String neuerName = new String(name);
	String neuesGebDatum = new String(gebDatum);
	String neuesGeschlecht = new String(geschlecht);
	int neueWortzahl = new Integer(wortzahlMerken);

	return new Person(neuerName, neuesGebDatum, neuesGeschlecht,
		neueWortzahl);
    }

}
